查看原文
其他

读懂自动驾驶四大核“芯”,这一篇文章就够了!

ALvin 智驾未来 2020-01-17

      自动驾驶大势之下,原有的CPU已难以满足技术需求,GPU、FPGA、ASIC等处理器的出现,为市场带来了更大的曙光。但如何选择合适的处理器?又成为自动驾驶的一大难题……


工程师 A

“听说了吗,最近又推出了新款GPU,那性能简直不要太好!”

工程师 B

“我还是觉得FPGA好点……”

工程师 C

FPGA哪里能比得上ASIC,它才是自动驾驶的未来!” 

工程师 D

“呃……”


从汽车到自动驾驶,芯片之争愈演愈烈!

早期,汽车电子以分布式ECU架构为主,但随着汽车电子化的快速发展,传统的分布式架构已经不能满足汽车的功能需求,中心架构DCU、MDC逐步成为了发展趋势。

这种趋势出现没多久后,人们发现传统CPU算力已经不能满足视频、图像等非机构化数据的需求,而GPU可以同时处理大量计算任务的特性成为了取代CPU在自动驾驶领域的最优方案。

然而,GPU虽然性能优越,但部分业者对FPGA、ASIC等处理器也是报以热枕。

究竟哪款好?一直争议不断……

1

CPU

作为通用处理器,CPU兼顾计算和控制。简单来说,就是计算单元(ALU)、控制单元(Control)和存储单元(DRAM)三大模块,其中Cache也是用来进行高速数据交换的存储器。

图片来源:CSDN

在CPU架构中,70%的晶体管被用于构建Cache及部分控制单元,用来处理复杂逻辑及执行效率,故导致计算通用性很强,而性能一般

其实,CPU就像一个机器一样,按照冯诺依曼架构(存储程序,顺序执行),配合着人们的指令执行任务,但由于人们的要求越来越高(更快的处理速度、更优的计算能力,更多的数据),这个机器开始手忙脚乱,甚至出现短暂“罢工”现象了。

所以,业内人士开始考虑,能否在芯片上多放几块处理器,分工处理,减少CPU的压力。

于是,GPU诞生了!

2

GPU

GPU即图形处理器,它与CPU最大的区别在于设计机构和功能不同。其最初被用于个人电脑、工作站、游戏机等移动设备商运行绘图运算,可以快速处理图像上的每一个像素点。

CPU逻辑控制能力强,可以进行复杂的逻辑运算,并且延时低,可以高效处理复杂的运算任务,但核心数量较少(一般不超过两位数)。而GPU逻辑控制能力较弱、缓存较小,但并列大量的计算单元,可以同时进行大量较简单的运算任务。

简单来说,就是CPU在图像渲染方面能力不足,所以GPU被发明出来分担这部分工作。

举个例子,在驾驶过程中,司机除了操作车辆外,还需对周围环境以及路线情况实时掌控,而自动驾驶则需要雷达、摄像头等传感器捕捉的环境信息,对路况进行分析,并判断汽车的行驶路线,这也正是GPU的能力。

相比CPU,GPU主要有以下区别:

其一,GPU拥有的核心百倍于CPU,如一枚GPU芯片拥有几千个核心,而CPU最多拥有22个;

其二,GPU为并行运算而生,CPU则为一步步计算而设计;

其三,GPU内存带宽较高,CPU较低;

其四,GPU适合图片、视频、行为预测等任务,而CPU适合文字处理、运行交易数据库等场景。

说到GPU,就不得不提一下它的代表企业——MVIDIA(英伟达)。英伟达在过去几年中,凭借多次AI浪潮的推动,其股价涨了近十倍。在外界人士看来,英伟达是一家卖显卡的硬件公司,但英伟达CEO黄仁勋认为,他们是一家AI公司。

确实,这些年英伟达在AI领域打的火热,也似乎在证明他们就是一家AI公司。在自动驾驶领域,英伟达先后发布了如Drive PX2 Parker、DRIVE PX Pegasus、NVIDIA DRIVE Xavier等平台,强力推动整个市场的发展。

据数据显示,至2017年末,英伟达的NVIDIA DRIVE自动驾驶平台便已经被145家自动驾驶公司采用,这个数据还在持续增长中。

与英伟达自研GPU方式不同的是,英特尔主要通过收购的方式布局自动驾驶芯片领域,如收购Mobileye(ASIC)、Altera(FPGA)、Movidius(VPU)等。其中,奥迪A8计算单元zFAS使用的芯片就包含了Mobileye的EyeQ3和Altera的CycloneV,并内嵌了Movidius的VPU。

有趣的是,市场上除了CPU、GPU之外,还有“XXPU”等,并以很快的速度占领AI界。其中,也有部分芯片被用于自动驾驶领域(仅供参考,不是本文重点)。

数据来源:OpenHW

3

FPGA

FPGA即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。

如何评估FPGA与GPU的性能差异呢?业界主要从峰值性能、平均性能以及计算能耗比等三方面来看!

想象一个场景,GPU上面成千上万的核心同时在GHZ频率上跑,如果可以放大来看,肯定特别壮观。相比而言,FPGA一旦型号选定,逻辑资源上限就确定了,所以设计资源很容易受到限制。此外,在查找逻辑单元、布线方面,FPGA的规则也比较多。整体来看,GPU的峰值性能远高于FPGA,但针对特定的场景来讲吞吐量并不比GPU差。

平均性能,需要综合来看,如果FPGA加速器架构优势能够弥补运行速度的劣势,且这种综合效果优于GPU,那么FPGA的平均性能将会超过GPU。

计算能耗比,应该比较在执行效率相同的情况下所需要的功耗大小。能效指的是程序执行所消耗的能量,能耗等于功耗乘以程序执行的时间。就目前来看,计算能耗比,应该是FPGA>GPU>CPU

在数据中心,FPGA的延迟要远低于GPU,本质区别在于体系结构。FPGA同时拥有流水线并行和数据并行,而GPU几乎只有数据并行。

图片来源:EEFOCUS

整体来看,FPGA在深度学习应用场景,存在的价值在于其灵活性。它可以根据实际应用的需求,构建所需要的硬件组件。但大规模开发难度高,整体的性价比和效率并不如GPU。

那么,自动驾驶为何会需要FPGA呢?

自动驾驶所体现的运算能力主要表现在车端和云端两方面:

在车端,需要通过高精度地图进行实时定位,并按照算法做出驾驶决策;

在云端,则需要对车辆上传的数据进行训练、优化。

目前,自动驾驶汽车均采用较多的处理器是GPU,但它在深度学习方面也有一些局限性,比如:功耗大,车辆散热不好;对串行算法无法优化;硬件结构不具备可编程性。

而FPGA计算架构却可以实现全定制、功耗低、灵活性较好的能力,在某些方面弥补了GPU的劣势,所以,这也是GPU+FPGA被认为是目前自动驾驶主流方案的主要原因之一。

就目前市场上来看,比较支持FPGA的大型企业有微软、比特大陆、地平线、Intel和宝马等。之前很火的比特大陆的挖矿机也是基于FPGA做出来的。

4

ASIC

ASIC是指应特定用户需求或者特定电子系统的需要而设计的集成电路。除了不能拓展以外,在功耗、体积、计算性能以及效率方面都有优势。目前谷歌的TPU、地平线的BPU、寒武纪的GPU等都属于ASIC芯片。

去年12月份,地平线发布了征程AI芯片,对比英伟达的DriverPX2,其采用16nm制程工艺,学习能力是24TFlops,从性能功耗比来看,征程还是比较占优势的。

从技术层面来看,ASIC克服了GPU粒度太粗的缺点,而用户也可以从晶体管开始定义逻辑。这种方式,无论是功耗还是性能,都比GPU要好很多。毕竟在设计的过程中,基本不会出现电路、计算能力、效率等浪费的现象。但这种方式,ASIC的缺点表现的也很明显,比如,投资高、开发周期长,芯片逻辑无法再次更改等。

根据两者性能优势来看,FPGA更适合被用于工业制造领域,ASIC则更适合消费电子、汽车领域。

至于ASIC上市速度比较慢的问题,目前可以使用SoC+IP的方式,IP公司可以专注于加速器前端设计,大公司可以做后端以及芯片/封装验证,这样可以扬长避短,加快芯片上市的速度。另一方面,ASIC芯片周期能否跟上AI算法演讲的速度,仍然是一个很大的挑战。

5

总结

由于自动驾驶芯片对于安全、性能、算力、寿命以及可靠性等要求较高,所以新兴企业很难入局,这个市场未来依旧是诸多老牌IC设计、IP企业角逐的重点

此外,如何平衡各大AI芯片的性能、算力、价格以及功耗等指标,也是需要IC设计厂商考虑的问题,这也是未来芯片推广的重要因素之一。

着眼未来,自动驾驶技术逐步完善,其芯片对于数据处理、环境适应、深度学习、决策时效等能力的要求也会越来越高。这种情况下,原有的CPU、GPU单处理器模式怕难以胜任自动驾驶需求,而如同GPU+FPGA或FPGA+ASIC等多处理器共存的方式暂时会成为市场主流

 

往期精彩回顾

电子分销圈的老板们,这里有一封您的邀请函!

百年之后,自动驾驶开始“逆袭”?

“硅谷双雄”角力中国自动驾驶市场!


公众号:智驾未来扫码关注 最新科技!
智驾未来 服 务 内 容


广告投放 | 政府招商 | 产业报告

投融资 | 专家咨询 | 人才服务 | 论坛策划

↙合作需求,请点击“阅读原文”联系我们


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存